#include <stdio.h>
#include <string.h>

void pause() {
    puts("\n按回车继续...");
    getchar();
    getchar();
}

void printItem(int seqNum, char *name, char *condition) { 
    printf("%-4d  %-8s  %-8s\n", seqNum + 1, name, condition);
    
}

int main(int argc, char* const argv[]) {
    char *className = argv[1];
    char *month = argv[2];
    char *day = argv[3];

    int seqNum = -1;
    char nameArr[100][10];
    char conditionArr[100][10];

    while (1) {
        puts("\n[ 学生身体状况统计表 ]\n");
        printf("%8s - %s %s月 %s日\n", "", className, month, day);

        puts("\n序号  姓  名  身体状况");
        for (int i = 0; i <= seqNum; i++) {
            printItem(i, nameArr[i], conditionArr[i]);
        }
        putchar('\n');

        puts("\n提示: [1]添加 [2]查询姓名 [3]查询异常");
        printf(": ");

        int cmdNum;
        scanf("%d", &cmdNum);

        switch (cmdNum) {
        case 1:
            puts("[添加]");

            printf("姓名: ");
            scanf("%s", nameArr[seqNum+1]);
            printf("身体状况: ");
            scanf("%s", conditionArr[seqNum+1]);

            seqNum += 1;

            break;
        case 2:{
            if (seqNum > 0) {
                puts("[按姓名查询]");

                char tmpName[10];
                printf("姓名: ");
                scanf("%s", tmpName);

                puts("\n序号  姓  名  身体状况");
                for (int i = 0; i <= seqNum; i++) {
                    if (!strcmp(tmpName, nameArr[i])) {
                        printItem(i, nameArr[i], conditionArr[i]);
                    }
                }
            } else {
                puts("列表尚空！");
            }
            putchar('\n');
        }
            pause();
            break;
        case 3:
            if (seqNum > 0 ) {
                puts("[ 身体状况异常人员名单 ]");
                
                puts("\n序号  姓  名  身体状况");
                for (int i = 0; i <= seqNum; i++) {
                    if (strcmp("正常", conditionArr[i]) != 0) {
                        printItem(i, nameArr[i], conditionArr[i]);
                    }
                }
            } else {
                puts("列表尚空！");
            }
            putchar('\n');

            pause();
            break;
        default:
            puts("命令编号有误，请重新输入！");

            pause();
        }
    }

    return 0;
}
